//对于axios进行二次封装
import axios from 'axios';
import nprogress from 'nprogress';
//如果出现进度条没有显示：一定是你忘记了引入样式了
import 'nprogress/nprogress.css';
import store from '@/store';

//底下的代码也是创建axios实例
let requests = axios.create({
  //基础路径
  baseURL: '/api',
  timeout: 5000,
});

requests.interceptors.request.use((config) => {
  //现在的问题是config是什么?配置对象
  //可以让进度条开始动
  //需要携带token带给服务器
  if (store.state.detail.uuid_token) {
    // 请求头添加一个字段(userTempId):和后台老师商量好了
    config.headers.userTempId = store.state.detail.uuid_token;
  }
  if (store.state.user.token) {
    config.headers.token = store.state.user.token;
  }
  nprogress.start();
  return config;
});

requests.interceptors.response.use(
  (res) => {
    //进度条结束
    nprogress.done();
    //相应成功做的事情
    return res.data;
  },
  (error) => {
    alert('服务器响应数据失败');
    // return Promise.reject(new Error('false'));
  },
);

export default requests;
